package IntegerTest;
/*
java自jdk5之后，有了自动装箱和拆箱机制
 */
public class IntegerTest2 {
    public static void main(String[] args){
        Integer i = 100; //基本数据类型转换成引用数据类型(自动装箱)
        int j = i; //引用数据类型转换成基本数据类型(自动拆箱)

        Integer a = 1000;
        Integer b = 1000;
        System.out.println(a == b); //这里比较的是对象的内存地址 false 这个==运算符不会触发自动拆箱机制，只有+ - * /才会

        //分析以下程序
        Integer c = 128;
        Integer d = 128;
        System.out.println(c == d); // false
        /*
        java中为提高程序的运行效率，将-128-127之间的所有包装对象提前创建好，放到一个方法区的“整型常量池当中”
        目的是只要用这个区间的数据不需要再new了，直接从整型常量池中取出来
         */
        Integer x = 127;
        Integer y = 127;
        System.out.println(x == y); //结果是true，x,y指向整型常量池中同一个地址
    }
}
